
        <html>
			<head>
			     <title>密码找回逻辑漏洞总结 - BMa</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/web/5048">http://drops.wooyun.org/web/5048</a></h1>
				
      <p>
        <h1>0x00 背景介绍</h1>

<hr />

<p>请注意这两篇文章：</p>

<p><a href="http://drops.wooyun.org/papers/287">密码找回功能可能存在的问题</a></p>

<p><a href="http://drops.wooyun.org/web/3295">密码找回功能可能存在的问题（补充）</a></p>

<p>距离上两篇文档过去近半年了，最近整理密码找回的脑图，翻开收集的案例，又出现了一些新的情况，这里一并将所有见到的案例总结并分享给大家，在测试时可根据这个框架挖掘！</p>

<h1>0x01 密码找回逻辑测试一般流程</h1>

<hr />

<ul>
<li>首先尝试正常密码找回流程，选择不同找回方式，记录所有数据包</li>
<li>分析数据包，找到敏感部分</li>
<li>分析后台找回机制所采用的验证手段</li>
<li>修改数据包验证推测</li>
</ul>

<!--more-->

<h1>0x02 脑图</h1>

<hr />

<p><img src="http://static.wooyun.org/20150309/2015030902491080846.png" alt="enter image description here" /></p>

<h1>0x03 详情</h1>

<hr />

<h2>用户凭证暴力破解</h2>

<hr />

<p>四位或者六位的纯数字 例子</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2012-011833">WooYun: 当当网任意用户密码修改漏洞</a> </p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2012-011720">WooYun: 微信任意用户密码修改漏洞</a> </p>

<h2>返回凭证</h2>

<hr />

<p>url返回验证码及token 例子</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2012-05630">WooYun: 走秀网秀团任意密码修改缺陷</a> </p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2014-058210">WooYun: 天天网任意账户密码重置（二）</a> </p>

<h2>密码找回凭证在页面中</h2>

<hr />

<p>通过密保问题找回密码 例子</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2012-04728">WooYun: sohu邮箱任意用户密码重置</a> </p>

<h2>返回短信验证码</h2>

<hr />

<p>例子</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2014-085124">WooYun: 新浪某站任意用户密码修改（验证码与取回逻辑设计不当）</a> </p>

<h2>邮箱弱token</h2>

<hr />

<p>时间戳的md5 例子</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2012-08333">WooYun: 奇虎360任意用户密码修改漏洞</a> </p>

<h2>用户名 &amp; 服务器时间</h2>

<hr />

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2015-090226">WooYun: 中兴某网站任意用户密码重置漏洞（经典设计缺陷案例）</a> </p>

<h2>用户凭证有效性</h2>

<hr />

<p>短信验证码 例子</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2014-053349">WooYun: OPPO手机重置任意账户密码（3）</a> </p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2014-053079">WooYun: 第二次重置OPPO手机官网任意账户密码（秒改）</a> </p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2013-020032">WooYun: OPPO修改任意帐号密码</a> </p>

<h2>邮箱token</h2>

<hr />

<p>例子</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2012-012572">WooYun: 身份通任意密码修改-泄漏大量公民信息</a> </p>

<h2>重置密码token</h2>

<hr />

<p>例子</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2014-078208">WooYun: 魅族的账号系统内存在漏洞可导致任意账户的密码重置</a> </p>

<h2>重新绑定</h2>

<hr />

<p>手机绑定 例子</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2012-08307">WooYun: 网易邮箱可直接修改其他用户密码</a> </p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2014-081467">WooYun: 12308可修改任意用户密码</a> </p>

<h2>邮箱绑定</h2>

<hr />

<p>例子</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2015-092319">WooYun: 某彩票设计缺陷可修改任意用户密码</a> </p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2014-086726">WooYun: 中国工控网任意用户密码重置漏洞</a> </p>

<h2>服务器验证</h2>

<hr />

<p>最终提交步骤 例子</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2013-018263">WooYun: 携程旅行网任意老板密码修改(庆在wooyun第100洞)</a> </p>

<h2>服务器验证可控内容</h2>

<hr />

<p>例子</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2014-080278">WooYun: AA拼车网之任意密码找回2</a> </p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2014-082582">WooYun: 四川我要去哪517旅行网重置任意账号密码漏洞</a> </p>

<h2>服务器验证验证逻辑为空</h2>

<hr />

<p>例子</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2014-088927">WooYun: 某政企使用邮件系统疑似存在通用设计问题</a> </p>

<h2>用户身份验证</h2>

<hr />

<p>账号与手机号码的绑定</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2014-075941">WooYun: 上海电信通行证任意密码重置</a> </p>

<h2>账号与邮箱账号的绑定</h2>

<hr />

<p>例子</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2014-078208">WooYun: 魅族的账号系统内存在漏洞可导致任意账户的密码重置</a> </p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2015-091216">WooYun: 和讯网修改任意用户密码漏洞</a> </p>

<h2>找回步骤</h2>

<hr />

<p>跳过验证步骤、找回方式，直接到设置新密码页面 例子</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2013-042404">WooYun: OPPO手机同步密码随意修改，短信通讯录随意查看</a> </p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2015-098765">WooYun: 中国电信某IDC机房信息安全管理系统设计缺陷致使系统沦陷</a> </p>

<h2>本地验证</h2>

<hr />

<p>在本地验证服务器的返回信息，确定是否执行重置密码，但是其返回信息是可控的内容，或者可以得到的内容 例子</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2014-083035">WooYun: 看我如何重置乐峰网供应商管理系统任意用户密码（管理员已被重置）</a> </p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2014-069987">WooYun: oppo重置任意用户密码漏洞(4)</a> </p>

<h2>发送短信等验证信息的动作在本地进行，可以通过修改返回包进行控制</h2>

<hr />

<p>例子</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2013-020532">WooYun: OPPO修改任意帐号密码-3</a> </p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2013-020425">WooYun: OPPO修改任意帐号密码-2</a> </p>

<h2>注入</h2>

<hr />

<p>在找回密码处存在注入漏洞 例子</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2014-068060">WooYun: 用友人力资源管理软件（e-HR）另一处SQL注入漏洞（通杀所有版本）</a> </p>

<h2>Token生成</h2>

<hr />

<p>token生成可控 例子</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2015-094242">WooYun: 天天网任意账号密码重置(非暴力温柔修改)</a> </p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2015-095729">WooYun: 天天网再一次重置任意账号密码(依旧非暴力)</a> </p>

<h2>注册覆盖</h2>

<hr />

<p>注册重复的用户名 例子</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2014-088708">WooYun: 中铁快运奇葩方式重置任意用户密码(admin用户演示)</a> </p>

<h2>session覆盖</h2>

<hr />

<p>例子</p>

<p> <a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2014-085843">WooYun: 聚美优品任意修改用户密码(非爆破)</a> </p>

<p>附脑图文件：<a href="http://static.wooyun.org/drops/20150309/2015030903011489919%E5%AF%86%E7%A0%81%E6%89%BE%E5%9B%9E%E6%BC%8F%E6%B4%9E%E6%8C%96%E6%8E%98.zip">密码找回漏洞挖掘.zip</a></p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          